using System;

namespace Elmer.Core
{
    public class NoDateSetException : Exception
    {
        public NoDateSetException()
            : base ("No date has been set yet for this item")
        {
        }

        public NoDateSetException(string description)
            : base(description)
        {
        }
    }

    public class CompletionDateCannotBeInFuture : Exception
    {
        public CompletionDateCannotBeInFuture()
            : base("Completion date cannot be in the future")
        {
        }

        public CompletionDateCannotBeInFuture(string description)
            : base(description)
        {
        }
    }

    public class PersonIsNotDeveloper : Exception
    {
        public PersonIsNotDeveloper()
            : base("The person speficied is not in a development role")
        {
        }

        public PersonIsNotDeveloper(string name)
            : base("'" + name + "' is not in a development role")
        {
        }
    }

    public class FeatureNotAssignedToDeveloper : Exception
    {
        public FeatureNotAssignedToDeveloper()
            : base("The person speficied is not assigned that feature")
        {
        }

        public FeatureNotAssignedToDeveloper(string name, string feature)
            : base("'" + name + "' has not been assigned '" + feature + "'")
        {
        }
    }

    public class PersonIsNotChiefProgrammer : Exception
    {
        public PersonIsNotChiefProgrammer()
            : base("The person speficied is not in a chief programmer role")
        {
        }

        public PersonIsNotChiefProgrammer(string name)
            : base("'" + name + "' is not in a chief programmer role")
        {
        }
    }

}
